PIN Block Format 42 is the Visa format for PIN change using current (old) PIN The method for constructing the PIN block is defined in section C.11.1 of reference 4.
The PIN Block is created using the old PIN, the new PIN and part of the card’s unique DEA Key as follows:
1. Construct a 16 hexadecimal digit block of data, by extracting the eight rightmost digits of the card application’s Unique DEA Key A (UDK-A) and zero filling it on he left with eight hexadecimal zeros:
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
←8 Rightmost digits of card app’s unique DEA key A→ |
||||||||||||||
Note: HSM terminology for UDK-A is *DK-AC. This is the card-unique key derived from *MK-AC, the Master Key for Application Cryptograms.
2. Create a second 16 hexadecimal digit block of data as follows:
|
C |
N |
P |
P |
P |
P |
P/F |
P/F |
P/F |
P/F |
P/F |
P/F |
P/F |
P/F |
F |
F |
Where:
C is a fixed control field of binary value 0000 (hex 0).
N is the length of the new PIN and can be any binary value from 0100 to 1100 (H’ 4 to H’ C).
P is a digit of the new PIN and can be any binary value from 0000 to 1001 (H’ 0 to H’ 9).
P/F is either a PIN digit or the binary 1111 (hex F) filler depending on the length of the PIN.
F is filler of binary value 1111 (hex F).
3. Create a third 16 decimal digit block of data using the old PIN as follows:
|
P |
P |
P |
P |
P |
P/0 |
P/0 |
P/0 |
P/0 |
P/0 |
P/0 |
P/0 |
0 |
0 |
0 |
0 |
Where:
P is a digit of the old PIN and can be any binary value from 0000 to 1001 (H’ 0 to H’ 9).
P/0 is either a PIN digit or the binary 0000 (hex 0) filler depending on the length of the PIN.
0 is filler of binary value 0000 (hex 0).
4. Perform an exclusive-OR operation on the blocks of data created in steps 1, 2 and 3. The result is called the “Delta PIN”.